#include <stdbool.h>
#include <stdio.h>
#include <stdlib.h>

#ifndef PROJECT_QUEUE_ARRAY_H
#define PROJECT_QUEUE_ARRAY_H
#define LENGTH 6

const int capacity = LENGTH - 1;

typedef struct QueueArray {
    int data[LENGTH];
    int insert;
    int pop;
} queue;

// Creates a new queue
queue *createQueue();
// Adds value to queue
void enqueue(queue *q, int value);
// Returns value at front of queue, and removes from queue
int dequeue(queue *q);
// Returns true if queue is empty
bool isEmpty(queue *q);
// Returns true if queue is full
bool isFull(queue *q);
// Prints the content of the queue for debugging purposes.
void print_debug(queue *q);
// Checks to see if memory provided by malloc is valid and exits if not.
void checkAddress(queue *q);

#endif //PROJECT_QUEUE_ARRAY_H
